package org.example.demo3.demos.web.VmsTransactionFlowInvoice.domain;

import cn.hutool.core.date.DateTime;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.example.demo3.demos.web.annotation.Translate;
import org.example.demo3.demos.web.constants.DictConstant;
import org.example.demo3.demos.web.constants.TranslateConstant;

import java.math.BigDecimal;
import java.util.Date;

@Data
@ApiModel(value = "交易流水发票-列表-分页")
public class VmsTransactionFlowInvoicePageVo {
    /**
     * 交易流水开票id
     */
    @ApiModelProperty(value = "交易流水开票id", notes = "交易流水开票id")
    private String id;

    /**
     * 交易号
     */
    @ApiModelProperty(value = "业务交易号", notes = "业务交易号")
    private String jyls;

    /**
     * 交易日期
     */
    @ApiModelProperty(value = "交易日期", notes = "交易日期")
    @Translate(type = TranslateConstant.DATE)
    private Date jyrq;

    /**
     * 业务编号
     */
    @ApiModelProperty(value = "业务编号", notes = "业务编号")
    private String ywbh;

    /**
     * 原业务编号
     */
    @ApiModelProperty(value = "原业务交易号，即被红冲/折扣交易号", notes = "原业务交易号，即被红冲/折扣交易号")
    private String ysjyls;

    /**
     * 业务类型
     */
    @ApiModelProperty(value = "业务类型", notes = "业务类型")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VAT_YWLX)
    private String ywlx;

    /**
     * 保全项目代码
     */
    @ApiModelProperty(value = "保全项目代码", notes = "保全项目代码")
    private String bqxmdm;

    /**
     * 保全项目名称
     */
    @ApiModelProperty(value = "保全项目名称", notes = "保全项目名称")
    private String bqxmmc;

    /**
     * 未开票金额
     */
    @ApiModelProperty(value = "未开票金额", notes = "未开票金额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal wkpje;

    /**
     * 交易金额(含税)
     */
    @ApiModelProperty(value = "交易金额", notes = "交易金额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal jyje;

    /**
     * 交易金额(不含税)
     */
    @ApiModelProperty(value = "交易人民币金额（不含税）", notes = "交易人民币金额（不含税）")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal bhsje;

    /**
     * 税率
     */
    @ApiModelProperty(value = "税率", notes = "税率")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal sysl;

    /**
     * 税额
     */
    @ApiModelProperty(value = "税额", notes = "税额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal xxse;

    /**
     * 获票人名称
     */
    @ApiModelProperty(value = "获票人名称", notes = "获票人名称")
    private String kfhm;

    /**
     * 纳税人识别号
     */
    @ApiModelProperty(value = "纳税人识别号", notes = "纳税人识别号")
    private String nsrsbh;

    /**
     * 是否个人业务
     */
    @ApiModelProperty(value = "是否个人业务", notes = "是否个人业务")
    private String isgryw;

    /**
     * 证件类型
     */
    @ApiModelProperty(value = "证件类型", notes = "证件类型")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VAT_8002)
    private String zjlx;

    /**
     * 证件号码
     */
    @ApiModelProperty(value = "证件号码", notes = "证件号码")
    private String zjhm;

    /**
     * 险种代码
     */
    @ApiModelProperty(value = "险种代码", notes = "险种代码")
    private String xzdm;

    /**
     * 险种简称
     */
    @ApiModelProperty(value = "险种简称", notes = "险种简称")
    private String xzjc;

    /**
     * 险种全称
     */
    @ApiModelProperty(value = "险种全称", notes = "险种全称")
    private String xzqc;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", notes = "备注")
    private String bz;

    /**
     * 交易机构
     */
    @ApiModelProperty(value = "交易机构", notes = "交易机构")
    private String jyjg;

    /**
     * 投保单号
     */
    @ApiModelProperty(value = "投保单号", notes = "投保单号")
    private String tbdh;

    /**
     * 汇交单号
     */
    @ApiModelProperty(value = "汇交单号", notes = "汇交单号")
    private String hjdh;

    /**
     * 学平险受理号
     */
    @ApiModelProperty(value = "学平险受理号", notes = "学平险受理号")
    private String xpxslh;

    /**
     * 缴费方式
     */
    @ApiModelProperty(value = "缴费方式", notes = "缴费方式")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VMS_JFFS)
    private String jffs;

    /**
     * 税优识别码
     */
    @ApiModelProperty(value = "税优识别码", notes = "税优识别码")
    private String sysbm;

    /**
     * 缴费起期
     */
    @ApiModelProperty(value = "缴费起期", notes = "缴费起期")
    @Translate(type = TranslateConstant.DATE)
    private Date jfqsrq;

    /**
     * 缴费止期
     */
    @ApiModelProperty(value = "缴费止期", notes = "缴费止期")
    @Translate(type = TranslateConstant.DATE)
    private Date jfjzrq;

    /**
     * 电子邮箱
     */
    @ApiModelProperty(value = "电子邮箱", notes = "电子邮箱")
    private String dzyx;

    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号", notes = "手机号")
    private String sjh;

    /**
     * 服务人员编号
     */
    @ApiModelProperty(value = "服务人员编号", notes = "服务人员编号")
    private String fwrybh;

    /**
     * 服务人员姓名
     */
    @ApiModelProperty(value = "服务人员姓名", notes = "服务人员姓名")
    private String fwryxm;

    /**
     * 部
     */
    @ApiModelProperty(value = "部", notes = "部")
    private String bmc;

    /**
     * 区
     */
    @ApiModelProperty(value = "区", notes = "区")
    private String qmc;

    /**
     * 组
     */
    @ApiModelProperty(value = "组", notes = "组")
    private String zmc;

    /**
     * 来源系统
     */
    @ApiModelProperty(value = "来源系统", notes = "来源系统")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VAT_SJLY_01)
    private String sjly;

    /**
     * 供数日期
     */
    @ApiModelProperty(value = "供数日期", notes = "供数日期")
    @Translate(type = TranslateConstant.DATE)
    private Date gsrq;

    /**
     * 产品代码
     */
    @ApiModelProperty(value = "产品代码", notes = "产品代码")
    private String cpdm;

    /**
     * 产品名称
     */
    @ApiModelProperty(value = "产品名称", notes = "产品名称")
    private String cpmc;

    /**
     * 操作类型
     */
    @ApiModelProperty(value = "操作类型", notes = "操作类型")
    private String czlx;


}
